﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sociedad.BL;
using Sociedad.DAL;

public partial class SOA_RegistroSOA_SolicitudInscripcion_Manten : System.Web.UI.Page
{
    private const String viewState_Solicitud = "viewState_Solicitud";

    ParametroBL blParam = new ParametroBL();
    soa_SolicitudInscripcion beSolic = new soa_SolicitudInscripcion();
    SolicitudInscripcionBL blSolic = new SolicitudInscripcionBL();
    SociedadBL blSoa = new SociedadBL();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            try
            {
                Inicializar();
                Guardar_Solicitud_ViewState();
            }
            catch (Exception ex)
            {
                lblMsj.Text = "Se produjo un error al intentar cargar los datos, volver a intentar.";
                lblMsj.ForeColor = System.Drawing.Color.Red;
                lblMsj.Visible = true;  
            }

        }
        else
        {
            lblMsj.Visible = false;
            Guardar_Solicitud_ViewState();
        }
    }


    private void Inicializar()
    {
        // Inicializar valores
        txtAudFinanciera.Text = "0";
        txtAudGestion.Text = "0";

        // Cargar Tipo de Documentos
        List<Soa_Parametros> lstParam1 = new List<Soa_Parametros>();
        Soa_Parametros param1 = new Soa_Parametros();
        param1.cprm_Codigo = "0";
        param1.cprm_Descripcion = "<Selec>";
        lstParam1 = blParam.Listar_Parametros("02");
        List<Soa_Parametros> lstParamNew1 = new List<Soa_Parametros>();
        lstParamNew1.Add(param1);
        for (int i = 1; i <= lstParam1.Count(); i++)
        {
            lstParamNew1.Add(lstParam1[i - 1]);
        }
        ddlTipDoc.DataSource = lstParamNew1;
        ddlTipDoc.DataTextField = "cprm_Abrevia";
        ddlTipDoc.DataValueField = "cprm_Codigo";
        ddlTipDoc.DataBind();

    }

    // Cancelar operación
    protected void imbOK3_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect("SolicitudInscripcion_Listado.aspx");
    }

    protected void imbConfirmCancelar_Click(object sender, ImageClickEventArgs e)
    {
        modalPopupCancel.Show();
    }

    // Guardar Operación
    protected void imbOK2_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            beSolic.csin_RUC = txtNroRUC.Text;
            beSolic.csin_RazonSocial = txtRazonSocial.Text;
            beSolic.csin_Telefonos = txtTelefonos.Text;
            beSolic.csin_Email = txtEmail.Text;
            beSolic.cprm_TipDocAcceso = ddlTipDoc.SelectedValue;
            beSolic.csin_NroDocAcceso = txtNroDoc.Text;
            beSolic.csin_ApellidosAcceso = txtApellidos.Text;
            beSolic.csin_NombresAcceso = txtNombres.Text;
            beSolic.csin_EmailAcceso = txtEmailRep.Text;
            beSolic.nsin_AudFin = Convert.ToInt32(txtAudFinanciera.Text);
            beSolic.nsin_AudGes = Convert.ToInt32(txtAudGestion.Text);
            beSolic.csin_ColProfesional = txtColegioProf.Text;
            beSolic.csin_NroMatricula = txtNroMatricula.Text;
            beSolic.dsin_FecColegiatura = Convert.ToDateTime(txtFecColegiatura.Text);
            beSolic.csin_LugarPago = txtLugarPago.Text;
            beSolic.dsin_FecPago = Convert.ToDateTime(txtFecPago.Text);
            beSolic.csin_NroOperacion = txtNroDoc.Text;
            beSolic.csin_UsuCre = Session[Constantes.session_CodUsuario].ToString();
            beSolic.cprm_Estado = "2001";  // Emitido

            String[] cRpta = blSolic.Insertar_SolicitudInscripcion(beSolic).Split('@');

            if (cRpta[0] == "1") // Se guardó exitosamente
            {
                Response.Redirect("SolicitudInscripcion_Listado.aspx");
            }
            else
            {
                if (String.IsNullOrEmpty(cRpta[1]))
                {
                    lblMsj.Text = cRpta[1];
                }
                else
                {
                    lblMsj.Text = "Se produjo un error inesperado. Volver a intentar.";
                }
                lblMsj.ForeColor = System.Drawing.Color.Red;
                lblMsj.Visible = true;
            }
        }
        catch 
        {
            lblMsj.Text = "Se produjo un error al intentar guardar los datos, volver a intentar.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;  
        }
    }
    protected void imbConfirmGuardar_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            if (UpdatePanel1.Page.IsValid)
            {
                String rptaMsj = Validar_Datos();
                if (String.IsNullOrEmpty(rptaMsj))
                {
                    lblMsjConfirm2.Text = "¿Seguro de guardar los datos?";
                    modalPopupGuardar.Show();
                }
                else
                {
                    lblMsj.Text = rptaMsj;
                    lblMsj.ForeColor = System.Drawing.Color.Red;
                    lblMsj.Visible = true;
                }
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error al intentar validar los datos, volver a intentar.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;  
        }
    }

    private String Validar_Datos()
    {
        String msj = "";
        if (txtNroRUC.Text.Length < 11)
        {
            return "El número de RUC tiene que ser de 11 dígitos.";
        }
        if (ddlTipDoc.SelectedValue.Equals("0201")) // DNI
        {
            if (txtNroDoc.Text.Length != 8)
            {
                msj = "El número de DNI es inválido, debe contener 8 dígitos.";
            }
        }
        if (ddlTipDoc.SelectedValue.Equals("0")) {
            msj = "Seleccione el tipo de documento del representante legal.";
        }
        if (ddlTipDoc.SelectedValue.Equals("0202")) // CE
        {
            if (txtNroDoc.Text.Length != 11)
            {
                msj = "El número de CE es inválido, debe de contener 11 caracteres.";
            }
        }
        String cRptaValRuc = blSoa.Verificar_SociedadxRUC(txtNroRUC.Text);
        if (!String.IsNullOrEmpty(cRptaValRuc))
        {
            msj = cRptaValRuc;
        }
        
        return msj;
    }
    protected void ddlTipDoc_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlTipDoc.SelectedValue.Equals("0201")) { //DNI
            txtNombres.Enabled = false;
            txtApellidos.Enabled = false;
            imbBuscarDNI.Visible = true;
        } else {
            txtNombres.Enabled = true;
            txtApellidos.Enabled = true;
            imbBuscarDNI.Visible = false;
        }
        txtNombres.Text = "";
        txtApellidos.Text = "";
        Restaurar_Solicitud_ViewState();
    }
    protected void imbBuscarDNI_Click(object sender, ImageClickEventArgs e)
    {
        if (txtNroDoc.Text.Length != 8)
        {
            lblMsj.Text = "El número de DNI es inválido, debe contener 8 dígitos.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
        else
        {
            txtNombres.Text = "Abraham";
            txtApellidos.Text = "Valdelomar";
        }
    }

    private void Guardar_Solicitud_ViewState ()
    {
        //if (String.IsNullOrEmpty(txtFecPago.Text))
        //{
        //    beSolic.dsin_FecPago = DateTime.MinValue;
        //}
        //else
        //{
        //    beSolic.dsin_FecPago = DateTime.Parse(txtFecPago.Text);
        //}
        //if (String.IsNullOrEmpty(txtFecColegiatura.Text))
        //{
        //    beSolic.dsin_FecColegiatura = DateTime.MinValue;
        //}
        //else
        //{
        //    beSolic.dsin_FecColegiatura = DateTime.Parse(txtFecColegiatura.Text);
        //}
        //ViewState.Add(viewState_Solicitud, beSolic);
    }

    private void Restaurar_Solicitud_ViewState()
    {
        //beSolic = (soa_SolicitudInscripcion)ViewState[viewState_Solicitud];
        //if (beSolic.dsin_FecColegiatura.Equals(DateTime.MinValue))
        //{
        //    txtFecColegiatura.Text = "";
        //}
        //else
        //{
        //    txtFecColegiatura.Text = beSolic.dsin_FecColegiatura.ToString();
        //}
        //if (beSolic.dsin_FecPago.Equals(DateTime.MinValue))
        //{
        //    txtFecPago.Text = "";
        //}
        //else
        //{
        //    txtFecPago.Text = beSolic.dsin_FecPago.ToString();
        //}
    }
}